Virtual world simulation strives for one goal—believability. Avatars and objects in a virtual world should be believable, regardless of whether or not they are patterned on real world entities that exist in “first life” or are imaginary creatures in “second life” such as the blue-skinned humanoids in James Cameron's popular 3D movie “Avatar”. The major challenges in achieving believability for an avatar are the accurate and believable simulation of features such as: facial expression, hair, and cloth.
Today's state of the art for Virtual Worlds simulation relies to a great extent on the use of coarse objects (such as triangles) defined by their vertices to represent three-dimensional objects. A polygon mesh is widely used to express this 3D representation. The polygon mesh is a collection of vertices and polygons that define the shape of the object in three dimensions.
Once the shape of the object is defined, the object can be further refined in one of many processes. A vertex shader is a graphics processor that adds special effects to an object for 3D representation by changing the values of the object data. Pixel shaders are graphics processors used to compute color and other attributes such as translucency on per pixel basis.
Cloth simulation is challenging and carries a burdensome computational load, requiring mechanical computation, textile approximation, collision detection, and rendering. Because woven fabrics differ from other materials, their unique cloth geometry presents a challenge in rendering of not just the appearance, but the animation, of the cloth. In particular much research has been devoted to the accurate simulation of cloth “bending.” Complex computations involving surface models of cloth, using elasticity and viscosity parameters are used to approximate the real-world draping behavior of cloth. Known methods such as the Backward Euhler method are used to simulate high-quality animated garments on virtual characters. Real time cloth cannot be computed on today's end user CPU or GPU (graphics processing unit) for significantly complex fabric because of the amount of processing power required. Client side cloth effects, hair effects, water effects, and facial feature animation and so on are currently done using Vertex Shaders on GPUs, but those are limited in their physics capabilities and do not provide the level of realism that a complex server side simulation can provide.
In order for collision detection to render a scene “believable” virtual world viewers must receive quick and regular updates from a virtual world simulator to maintain interactivity with an accurately represented scene. If updates from the physics simulation are slow (i.e. the simulation computation of a frame takes too long), end users experience lag, and collision detection errors occur in the running simulation. For instance, an error occurs when the collision between a ball that is moving towards a wall is undetected because collision checks happen too infrequently.
Referring now to the drawings and to FIG. 1 in particular, we show an avatar sitting on a piano bench. The fabric of the avatar's skirt is an example of fabric that is not collision detected against the avatar form or the piano bench. As can be seen, the fabric approximation is limited by a collision with the piano bench. The approximation of the fabric is not represented in context with its surroundings.
The film DCC (digital content creation) industry has mastered the complex modeling of cloth. This is evident in animated films such as Disney Pixar's “Ratatouille” and “UP.” Using an industry rendering farm, it can take up to fifteen hours to compute the final ray traced image of each “frame” of a Pixar animated film today. Due to budgetary constraints, this level of sophistication is not found outside of the film industry. Generally speaking, combining high resolution objects used in a main simulation with extremely fine grained collision detection between those objects, together with infinite network bandwidth, requires a large budget.
A growing use of virtual world technology is in the area of virtual collaboration. Virtual collaboration allows users (employees, students, researchers) in geographically dispersed locations to collaborate on projects to achieve common goals. The medium for this collaboration is a virtual world setting. Often the users are represented as avatars and the virtual world “scene” is made to resemble a setting most familiar to the users; for example, a conference room, runway, or laboratory.
There is a need for a method to enable complex modeling of cloth for real-time applications using virtual world simulation.